﻿using System;
using System.Collections.Generic;
using System.Text;

namespace MedicWave.Visualization3d
{
    /// <summary>
    /// Scatterplot type - Normal,Biplot
    /// </summary>
    public enum ScatterplotType { Normal, BiPlot };
    /// <summary>
    /// Plot settings
    /// </summary>
    public struct ScatterplotSettings
    {
        /// <summary>
        /// Projection type: Orthographic or Perspective
        /// </summary>
        public ProjectionType PlotProjectionType;


        /// <summary>
        /// Uses printer friendly colors(white background, black text)
        /// </summary>
        public bool PrinterFriendlyColors;
        

        /// <summary>
        /// Shows/hides grid
        /// </summary>
        public bool ShowGrid;

        /// <summary>
        /// Shows/hides case names
        /// </summary>
        public bool ShowCaseNames;

        /// <summary>
        /// Shows/hides legend
        /// </summary>
        public bool ShowLegend;

        /// <summary>
        /// X axis label
        /// </summary>
        public string XLabel;

        /// <summary>
        /// Y axis label
        /// </summary>
        public string YLabel;

        /// <summary>
        /// Z axis label
        /// </summary>
        public string ZLabel;

        /// <summary>
        /// Plot title
        /// </summary>
        public string Title;

        /// <summary>
        /// Plot subtitle
        /// </summary>
        public string Subtitle;
        
        /// <summary>
        /// Correlation threshold, used for biplots
        /// </summary>
        public float CorrelationThreshold;

        /// <summary>
        /// Inner planes for biplot
        /// </summary>
        public bool DrawInnerPlanes;

        /// <summary>
        /// Background color
        /// </summary>
        internal System.Drawing.Color BackgroundColor;

        internal void Reset()
        {
            XLabel = "Label X";
            YLabel = "Label Y";
            ZLabel = "Label Z";
            Title = "Plot1";
            Subtitle = "";
            CorrelationThreshold = 0.5f;
            PrinterFriendlyColors = false;
            ShowGrid = false;
            ShowCaseNames = true;            
            ShowLegend = true;
            PlotProjectionType = ProjectionType.Orthographic;
            DrawInnerPlanes = false;
            BackgroundColor = System.Drawing.Color.FromArgb(40, 40, 40);
        }
    }
}
